package com.winai.launcher.utils;

import android.text.TextUtils;

import com.winai.launcher.R;

import java.util.HashMap;
import java.util.Map;

public class WeatherIconUtil {

    /**
     * key-图片文字;
     * value-图片资源
     */
    public static Map<String, Integer> EMOTION_CLASSIC_MAP;
    public static Map<String, String> WEATHER_CODE_MAP;

    static {
        WEATHER_CODE_MAP = new HashMap<>();
        WEATHER_CODE_MAP.put("晴", "100");
        WEATHER_CODE_MAP.put("大部晴朗", "101");
        WEATHER_CODE_MAP.put("多云", "102");
        WEATHER_CODE_MAP.put("少云", "103");
        WEATHER_CODE_MAP.put("阴", "104");
        WEATHER_CODE_MAP.put("阵雨", "201");
        WEATHER_CODE_MAP.put("局部阵雨", "202");
        WEATHER_CODE_MAP.put("小阵雨", "203");
        WEATHER_CODE_MAP.put("强阵雨", "204");
        WEATHER_CODE_MAP.put("阵雪", "301");
        WEATHER_CODE_MAP.put("小阵雪", "302");
        WEATHER_CODE_MAP.put("雾", "401");
        WEATHER_CODE_MAP.put("冻雾", "402");
        WEATHER_CODE_MAP.put("沙尘暴", "403");
        WEATHER_CODE_MAP.put("浮尘", "404");
        WEATHER_CODE_MAP.put("尘卷风", "405");
        WEATHER_CODE_MAP.put("扬沙", "406");
        WEATHER_CODE_MAP.put("强沙尘暴", "407");
        WEATHER_CODE_MAP.put("霾", "408");
        WEATHER_CODE_MAP.put("雷阵雨", "205");
        WEATHER_CODE_MAP.put("雷电", "206");
        WEATHER_CODE_MAP.put("雷暴", "207");
        WEATHER_CODE_MAP.put("雷阵雨伴有冰雹", "208");
        WEATHER_CODE_MAP.put("冰雹", "209");
        WEATHER_CODE_MAP.put("冰针", "210");
        WEATHER_CODE_MAP.put("冰粒", "211");
        WEATHER_CODE_MAP.put("雨夹雪", "212");
        WEATHER_CODE_MAP.put("小雨", "213");
        WEATHER_CODE_MAP.put("中雨", "214");
        WEATHER_CODE_MAP.put("大雨", "215");
        WEATHER_CODE_MAP.put("暴雨", "216");
        WEATHER_CODE_MAP.put("大暴雨", "217");
        WEATHER_CODE_MAP.put("特大暴雨", "218");
        WEATHER_CODE_MAP.put("小雪", "303");
        WEATHER_CODE_MAP.put("中雪", "304");
        WEATHER_CODE_MAP.put("大雪", "305");
        WEATHER_CODE_MAP.put("暴雪", "306");
        WEATHER_CODE_MAP.put("冻雨", "219");
        WEATHER_CODE_MAP.put("雪", "307");
        WEATHER_CODE_MAP.put("雨", "220");
        WEATHER_CODE_MAP.put("小到中雨", "221");
        WEATHER_CODE_MAP.put("中到大雨", "222");
        WEATHER_CODE_MAP.put("大到暴雨", "223");
        WEATHER_CODE_MAP.put("小到中雪", "224");
    }

    static {
        EMOTION_CLASSIC_MAP = new HashMap<>();
        EMOTION_CLASSIC_MAP.put("100", R.mipmap.icon_100);
        EMOTION_CLASSIC_MAP.put("100n", R.mipmap.icon_100n);
        EMOTION_CLASSIC_MAP.put("101", R.mipmap.icon_101);
        EMOTION_CLASSIC_MAP.put("102", R.mipmap.icon_102);
        EMOTION_CLASSIC_MAP.put("103", R.mipmap.icon_103);
        EMOTION_CLASSIC_MAP.put("103n", R.mipmap.icon_103n);
        EMOTION_CLASSIC_MAP.put("104", R.mipmap.icon_104);
        EMOTION_CLASSIC_MAP.put("201", R.mipmap.icon_201);
        EMOTION_CLASSIC_MAP.put("202", R.mipmap.icon_202);
        EMOTION_CLASSIC_MAP.put("203", R.mipmap.icon_203);
        EMOTION_CLASSIC_MAP.put("204", R.mipmap.icon_204);
        EMOTION_CLASSIC_MAP.put("205", R.mipmap.icon_205);
        EMOTION_CLASSIC_MAP.put("206", R.mipmap.icon_206);
        EMOTION_CLASSIC_MAP.put("207", R.mipmap.icon_207);
        EMOTION_CLASSIC_MAP.put("208", R.mipmap.icon_208);
        EMOTION_CLASSIC_MAP.put("209", R.mipmap.icon_209);
        EMOTION_CLASSIC_MAP.put("210", R.mipmap.icon_210);
        EMOTION_CLASSIC_MAP.put("211", R.mipmap.icon_211);
        EMOTION_CLASSIC_MAP.put("212", R.mipmap.icon_212);
        EMOTION_CLASSIC_MAP.put("212n", R.mipmap.icon_212n);
        EMOTION_CLASSIC_MAP.put("213", R.mipmap.icon_213);
        EMOTION_CLASSIC_MAP.put("214", R.mipmap.icon_214);
        EMOTION_CLASSIC_MAP.put("215", R.mipmap.icon_215);
        EMOTION_CLASSIC_MAP.put("215n", R.mipmap.icon_215n);
        EMOTION_CLASSIC_MAP.put("216", R.mipmap.icon_216);
        EMOTION_CLASSIC_MAP.put("217", R.mipmap.icon_217);
        EMOTION_CLASSIC_MAP.put("218", R.mipmap.icon_218);
        EMOTION_CLASSIC_MAP.put("219", R.mipmap.icon_219);
        EMOTION_CLASSIC_MAP.put("220", R.mipmap.icon_220);
        EMOTION_CLASSIC_MAP.put("220n", R.mipmap.icon_220n);
        EMOTION_CLASSIC_MAP.put("221", R.mipmap.icon_221);
        EMOTION_CLASSIC_MAP.put("222", R.mipmap.icon_222);
        EMOTION_CLASSIC_MAP.put("223", R.mipmap.icon_223);
        EMOTION_CLASSIC_MAP.put("224", R.mipmap.icon_224);
        EMOTION_CLASSIC_MAP.put("301", R.mipmap.icon_301);
        EMOTION_CLASSIC_MAP.put("302", R.mipmap.icon_302);
        EMOTION_CLASSIC_MAP.put("303", R.mipmap.icon_303);
        EMOTION_CLASSIC_MAP.put("304", R.mipmap.icon_304);
        EMOTION_CLASSIC_MAP.put("305", R.mipmap.icon_305);
        EMOTION_CLASSIC_MAP.put("305n", R.mipmap.icon_305n);
        EMOTION_CLASSIC_MAP.put("306", R.mipmap.icon_306);
        EMOTION_CLASSIC_MAP.put("307", R.mipmap.icon_307);
        EMOTION_CLASSIC_MAP.put("307n", R.mipmap.icon_307n);
        EMOTION_CLASSIC_MAP.put("401", R.mipmap.icon_401);
        EMOTION_CLASSIC_MAP.put("402", R.mipmap.icon_402);
        EMOTION_CLASSIC_MAP.put("403", R.mipmap.icon_403);
        EMOTION_CLASSIC_MAP.put("404", R.mipmap.icon_404);
        EMOTION_CLASSIC_MAP.put("405", R.mipmap.icon_405);
        EMOTION_CLASSIC_MAP.put("406", R.mipmap.icon_406);
        EMOTION_CLASSIC_MAP.put("407", R.mipmap.icon_407);
        EMOTION_CLASSIC_MAP.put("408", R.mipmap.icon_408);
        EMOTION_CLASSIC_MAP.put("999", R.mipmap.icon_999);
    }

    /**
     * 根据名称获取当前表情图标R值
     * @param name 天气名称
     */
    public static int getImgByName(String name) {
        Integer integer = EMOTION_CLASSIC_MAP.get(getCodeByName(name));
        return integer == null ? -1 : integer;
    }

    private static String getCodeByName(String name) {
        String code = "";
        if (name.contains("转")) {
            String[] s = name.split("转");
            if (s.length > 0) {
                code = WEATHER_CODE_MAP.get(s[0]);
            }
        } else {
            code = WEATHER_CODE_MAP.get(name);
        }
        return TextUtils.isEmpty(code) ? "999" : code;
    }
}
